package main

import "fmt"

/*
给定一个可能包含重复元素的整数数组 nums，返回该数组所有可能的子集（幂集）。

说明：解集不能包含重复的子集。

示例:

输入: [1,2,2]
输出:
[
  [2],
  [1],
  [1,2,2],
  [2,2],
  [1,2],
  []
]
*/

func sortAll(nums []int, pos int, res []int, last int){
	//if pos >= len(nums){
	//	return
	//}
	fmt.Println(res)
	for i := pos; i < len(nums); i++{
		if i-1 > 0 && i > pos && nums[i] == nums[i-1] {
			continue
		}

		res = append(res, nums[i])
		sortAll(nums, i+1, res, last)
		res = append(res[:len(res)-1], res[len(res):]...)
	}
}

func main(){
	sortAll([]int{1, 2, 2}, 0, []int{}, 0)
}
